1 package org.smartcomps.twister.util.user;
2
3 import junit.framework.TestCase;
4 import net.sf.hibernate.cfg.Configuration;
5 import net.sf.hibernate.tool.hbm2ddl.SchemaExport;
6 import org.smartcomps.twister.common.lifecycle.LifecycleManager;
7 import org.smartcomps.twister.common.persistence.CreationException;
8 import org.smartcomps.twister.common.transaction.TransactionManager;
9 import org.smartcomps.twister.util.user.priv.UserImpl;
10 import org.smartcomps.twister.util.user.priv.RoleImpl;
11 import org.smartcomps.twister.util.user.priv.dao.UserDAO;
12
13 import java.util.Collection;
14 import java.util.HashSet;
15 import java.util.Iterator;
16
17
18 public class TestUser extends TestCase {
19
20 TwisterUser twisterUser = null;
21
22 private Role adminRole = null;
23 private Role developerRole = null;
24 private Role managerRole = null;
25
26 protected void setUp() throws Exception {
27 LifecycleManager.getLifecycleManager().createResources();
28 LifecycleManager.getLifecycleManager().startResources();
29
30 SchemaExport schemaExport = new SchemaExport(new Configuration().configure());
31 schemaExport.create(true, true);
32
33 TransactionManager.beginTransaction();
34 twisterUser = TwisterUserFactory.getTwisterUser();
35 }
36
37 protected void tearDown() throws Exception {
38 TransactionManager.commitTransaction();
39
40 LifecycleManager.getLifecycleManager().stopResources();
41 LifecycleManager.getLifecycleManager().destroyResources();
42 twisterUser = null;
43 adminRole = null;
44 developerRole = null;
45 managerRole = null;
46 }
47
48 private Role createAdminRole(User user) throws Exception {
49 if (adminRole == null) {
50 Role res = new Role();
51 res.setRolename("admin");
52 res.setUser(user);
53 adminRole = res;
54 }
55 return adminRole;
56 }
57
58 private Role createManagerRole(User user) throws Exception {
59 if (managerRole == null) {
60 Role res = new Role();
61 res.setRolename("manager");
62 res.setUser(user);
63 managerRole = res;
64 }
65 return managerRole;
66 }
67
68 private Role createDeveloperRole(User user) throws Exception {
69 if (developerRole == null) {
70 Role res = new Role();
71 res.setRolename("developer");
72 res.setUser(user);
73 developerRole = res;
74 }
75 return developerRole;
76 }
77
78 public void testAB() throws Exception {
79
80 UserImpl user = new UserImpl();
81 user.setUsername("fred");
82 user.setPassword("password");
83
84 RoleImpl roleAdmin = new RoleImpl();
85 roleAdmin.setUser(user);
86 roleAdmin.setRolename("admin");
87
88 RoleImpl roleManager = new RoleImpl();
89 roleManager.setUser(user);
90 roleManager.setRolename("manager");
91
92 HashSet roles = new HashSet();
93 roles.add(roleAdmin);
94 roles.add(roleManager);
95 user.setRoles(roles);
96 UserDAO.create(user);
97 // UserDAO.create(roleAdmin);
98 // UserDAO.create(roleManager);
99 }
100
101 public void testInitDB() throws Exception {
102 User user = new User();
103 user.setUsername("fred");
104 user.setPassword("fred");
105 HashSet roles = new HashSet();
106 roles.add(createAdminRole(user));
107 roles.add(createManagerRole(user));
108 roles.add(createDeveloperRole(user));
109 user.setRoles(roles);
110 twisterUser.createUser(user);
111 user = new User();
112 user.setUsername("matt");
113 user.setPassword("matt");
114 roles = new HashSet();
115 roles.add(createAdminRole(user));
116 roles.add(createManagerRole(user));
117 roles.add(createDeveloperRole(user));
118 user.setRoles(roles);
119 twisterUser.createUser(user);
120 }
121
122
123 public void testCreateUserWithoutRole() throws Exception {
124 User user1 = new User();
125 user1.setUsername("user1");
126 user1.setPassword("password1");
127 try {
128 twisterUser.createUser(user1);
129 fail("Should throw CreationException");
130 } catch (CreationException e) {
131 }
132 }
133
134 public void testCreateUser() throws Exception {
135 User user1 = new User();
136 user1.setUsername("user1");
137 user1.setPassword("password1");
138 HashSet roles = new HashSet();
139 roles.add(createAdminRole(user1));
140 roles.add(createDeveloperRole(user1));
141 user1.setRoles(roles);
142 User createdUser = twisterUser.createUser(user1);
143 assertTrue("invalid username", createdUser.getUsername().equals("user1"));
144 assertTrue("invalid password", createdUser.getPassword().equals("password1"));
145 for (Iterator it = createdUser.getRoles().iterator(); it.hasNext();) {
146 Role role = (Role) it.next();
147 System.out.println(role);
148 }
149 // assertTrue("should contains admin role", createdUser.getRoles().contains(new Role("admin")));
150 // assertTrue("should contains developer role", createdUser.getRoles().contains(new Role("developer")));
151 }
152
153 public void testCreateUserAlreadyExists() throws Exception {
154 User user1 = new User();
155 user1.setUsername("user1");
156 user1.setPassword("password1");
157 HashSet roles = new HashSet();
158 roles.add(createAdminRole(user1));
159 user1.setRoles(roles);
160 twisterUser.createUser(user1);
161 try {
162 twisterUser.createUser(user1);
163 fail("Should throw CreationException");
164 } catch (CreationException e) {
165 }
166 }
167
168 public void testFindUsersInRole() throws Exception {
169 User user1 = new User();
170 user1.setUsername("user1");
171 user1.setPassword("password1");
172 HashSet roles = new HashSet();
173 Role adminRole = createAdminRole(user1);
174 Role mgrRole = createManagerRole(user1);
175 roles.add(adminRole);
176 roles.add(mgrRole);
177 adminRole.setUser(user1);
178 mgrRole.setUser(user1);
179 user1.setRoles(roles);
180 twisterUser.createUser(user1);
181
182 User user2 = new User();
183 user2.setUsername("user2");
184 user2.setPassword("password2");
185 HashSet roles2 = new HashSet();
186 Role adminRole2 = createAdminRole(user2);
187 Role devRole2 = createDeveloperRole(user2);
188 roles2.add(adminRole2);
189 roles2.add(devRole2);
190 adminRole2.setUser(user2);
191 devRole2.setUser(user2);
192 user2.setRoles(roles2);
193 twisterUser.createUser(user2);
194
195 TransactionManager.commitTransaction();
196 TransactionManager.beginTransaction();
197
198 Collection usersInAdmin = twisterUser.findUsersInRole("admin");
199 Collection usersInDeveloper = twisterUser.findUsersInRole("developer");
200 Collection usersInManager = twisterUser.findUsersInRole("manager");
201
202 assertTrue("Size of usersInAdmin collection should be 2", usersInAdmin.size() == 2);
203 assertTrue("Size of usersInDeveloper collection should be 1", usersInDeveloper.size() == 1);
204 assertTrue("Size of usersInManager collection should be 1", usersInManager.size() == 1);
205
206
207 }
208 }
This page was automatically generated by Maven